home *** CD-ROM | disk | FTP | other *** search
- #include <stdlib.h>
- #include <stdio.h>
-
- #include <proto/dos.h>
-
- /* liest Daten in den Buffer */
- int _fillbuf(FILE *f)
- {
- _chkabort();
- if(!f) return(EOF);
- if((f->flags&(_READABLE|_WRITE|_EOF|_ERR))!=_READABLE) return(EOF);
- f->flags|=_READ;
- if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
- if(!f->base)
- if(!(f->base=(char *)malloc(f->bufsize+1)+1))
- return(EOF);
- f->pointer=f->base;
- f->count=Read((BPTR)f->filehandle,f->pointer,(long)f->bufsize);
- if(--f->count<0){
- if(f->count==-1) f->flags|=_EOF;
- else f->flags|=_ERR;
- f->count=0;
- return(EOF);
- }
- return((unsigned char) *f->pointer++);
- }
-